package com.cskaoyan.mapper.marketMapper;

import com.cskaoyan.bean.bo.WxglMallManagementControllerBo.OrderListBo;
import com.cskaoyan.bean.marketBean.MarketChannel;
import com.cskaoyan.bean.marketBean.MarketIssueExample;
import com.cskaoyan.bean.marketBean.MarketOrder;
import com.cskaoyan.bean.marketBean.MarketOrderExample;
import com.cskaoyan.bean.vo.WxglMallManagementControllerVo.*;
import com.cskaoyan.bean.vo.zxw.StatOrderRowsVo;
import com.cskaoyan.bean.vo.zy.WXOrderListVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface MarketOrderMapper {
    long countByExample(MarketOrderExample example);

    int deleteByExample(MarketOrderExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(MarketOrder record);

    int insertSelective(MarketOrder record);

    List<MarketOrder> selectByExample(MarketOrderExample example);

    MarketOrder selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") MarketOrder record, @Param("example") MarketOrderExample example);

    int updateByExample(@Param("record") MarketOrder record, @Param("example") MarketOrderExample example);

    int updateByPrimaryKeySelective(MarketOrder record);

    int updateByPrimaryKey(MarketOrder record);

    List<OrderListVo> selectOrderListByExample(MarketOrderExample example);

    List<MarketChannel> orderChannel();

    OrderEntityVo selectOrderInfo(Integer id);

    List<OrderGoodsEntityVo> selectOrderGoodsInfo(Integer id);

    UserEntityVo selectUserInfo(int userId);

    int orderShip(@Param("orderId") Integer orderId, @Param("shipChannel") String shipChannel, @Param("shipSn") String shipSn, @Param("date") Date date);

    int selectOrderStatusById(@Param("orderId") Integer orderId);

    int orderDelete(Integer orderId);

    int orderGoodsDelete(Integer orderId);

    List<ListEntityVo> selectIssueListByExample(MarketIssueExample example);

    int orderRefund(@Param("orderId") Integer orderId, @Param("refundMoney") Integer refundMoney, @Param("orderStatus") String orderStatus, @Param("afterSaleStatus") String afterSaleStatus, @Param("refundType") String refundType, @Param("refundContent") String refundContent, @Param("date") String date);

    List<StatOrderRowsVo> selectOrderStatGroupByAddTime();

    WXOrderListVO selectOrder(Integer orderId);

    Integer selectStatus(Integer id);

    List<MarketOrder> selectOrderByUserId(Integer userId);


}
